-- *****************************************************************
-- CISCO-ATM-DUAL-PHY-MIB.my: Cisco atm dual phy MIB file
--
-- July 1996, Steve Garcia and David Battle
--
-- Copyright (c) 1996-1998 by cisco Systems, Inc.
-- All rights reserved.
--
-- *****************************************************************




CISCO-ATM-DUAL-PHY-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        Counter32
                FROM SNMPv2-SMI
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        TruthValue
                FROM SNMPv2-TC
        InterfaceIndexOrZero
                FROM CISCO-TC
        ifIndex,
        InterfaceIndex
                FROM IF-MIB
        ciscoMgmt
                FROM CISCO-SMI;


ciscoAtmDualPhyMIB MODULE-IDENTITY
        LAST-UPDATED    "9608300000Z"
        ORGANIZATION    "Cisco Systems, Inc."
        CONTACT-INFO
                "       Cisco Systems
                        Customer Service

                Postal: 170 W. Tasman Drive
                        San Jose, CA  95134-1706
                        USA

                   Tel: +1 800 553-NETS

                E-mail: cs-atm@cisco.com"
        DESCRIPTION
                "Initial version of this MIB module.


                Phy definition

                Throughout this document phy is used as an abbreviation
                for Physical Interface.  In particular it refers to a
                physical ATM jack on a Catalyst 5000 ATM card.  This card
                can be fitted with either one or two physical jacks, only
                one of which may be active at any given moment.  The second
                phy serves as a redundant connector to the ATM backbone.
                Note, however, that for logistical reasons, each phy has
                a separate ifIndex.


                Support of the phy by ifTable

                The dual phy entity on the c5K ATM line card is managed
                using the ifTable.  Specific interpretations of ifTable
                for the dual phy entity are as follows.

                Object   Use for dual phy entity
                ======   =======================

                ifIndex  Each phy entity is represented by an ifEntry.

                ifDescr  Description of the phy entity.

                ifType   The value for the phy entity is other(1).

                ifSpeed  See [1].

                ifPhysAddress   An octet string of zero length, per [1].

                ifAdminStatus   See [1].

                ifOperStatus    See [1].  In addition, note that a phy can
                          be in the up state but still not be the
                          active phy.  However, the active phy will
                          always be up.

                ifLastChange    See [1].

                ifName   See [1].

                ifLinkUpDownTrapEnable     disabled(2).

                ifHighSpeed      See [1]. 

                ifConnectorPresent      true(1).


                References

                [1] McCloghrie, K. and F. Kastenholz, Evolution of the
                Interfaces Group of MIB-II, RFC 1573, Hughes LAN Systems,
                FTP Software, January 1994."
        ::= { ciscoMgmt 60 }

ciscoAtmDualPhyMIBObjects OBJECT IDENTIFIER ::= { ciscoAtmDualPhyMIB 1 }

cadpStatistics OBJECT IDENTIFIER ::= { ciscoAtmDualPhyMIBObjects 1 }

cadpStatTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF CadpStatEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "A table of status information about ATM phy."
        ::= { cadpStatistics 1 }

cadpStatEntry OBJECT-TYPE
        SYNTAX     CadpStatEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "An Atm Phy table entry, containing information about
                a phy on this ATM module."
        INDEX { ifIndex }
        ::= { cadpStatTable 1 }

CadpStatEntry ::=
        SEQUENCE {
                -- index is ifIndex
                -- status items
                cadpStatLossOfSignal            TruthValue,
                cadpStatFarEndReceiveFailure    TruthValue,
                cadpStatActive                  TruthValue,
                cadpStatSectionBIP8Errors       Counter32,
                cadpStatLineBIP824Errors        Counter32,
                cadpStatLineFEBErrors           Counter32,
                cadpStatPathBIP8Errors          Counter32,
                cadpStatPathFEBErrors           Counter32,
                cadpStatCorrectableHCSErrors    Counter32,
                cadpStatUncorrectableHCSErrors  Counter32
        }

cadpStatLossOfSignal OBJECT-TYPE
        SYNTAX     TruthValue
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "Set to true if the phy is currently experiencing a
                loss of signal (LOS) from its connected port.  Set to false
                if the phy is not experiencing a loss of signal."
        ::= { cadpStatEntry 1 }

cadpStatFarEndReceiveFailure OBJECT-TYPE
        SYNTAX     TruthValue
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "Set to true if the phy is currently experiencing a far
                end receive failure (FERF) with its connected port.  Set to
                false if the phy is not experiencing a far end receive
                failure."
        ::= { cadpStatEntry 2 }

cadpStatActive OBJECT-TYPE
        SYNTAX     TruthValue
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "Set to true when this phy is currently the active phy.
                Set to false when this phy is not the currently active phy."
        ::= { cadpStatEntry 5 }

cadpStatSectionBIP8Errors OBJECT-TYPE
        SYNTAX    Counter32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
                "The Bit Interleaved Parity 8 is an error checking code
                applied for quick isolation of faults.  Each bit in the
                B octets is set to 1 or 0 as necessary to obtain even
                parity over the previous frame.  The calculated BIP-8
                code for frame N is compared with the BIP-8 code extracted
                from the B1 byte of frame N+1.  Differences indicate that
                a section level bit error has occurred.

                Count of Section BIP-8 (Bit Interleaved Parity) errors
                that have been detected on this phy. "
        ::= { cadpStatEntry 6 }

cadpStatLineBIP824Errors OBJECT-TYPE
        SYNTAX   Counter32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
                "The Bit Interleaved Parity 8/24 is an error checking code
                based on even parity.  The calculated BIP code for frame N
                is compared with the BIP-8/24 code extracted from the B2
                byte(s) of frame N+1.  Any differences indicate that a
                line layer bit error has occurred.

                Count of line bit interleaved partiy (BIP-8/24) errors on
                this phy. "
        ::= { cadpStatEntry 7 }

cadpStatLineFEBErrors OBJECT-TYPE
        SYNTAX    Counter32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
                "The number of bits (binary 000 to 1000) in the previous
                BIP-8 that didn't match the even parity check are inserted
                by the transmitter.  The receiver checks for this in the 
                M0/M1 byte of the frame.  A non-zero value (legal range 
                is binary 0000 - 1000) indicates a line layer error in 
                the remote end.  Any other value is treated as no error.

                Count of Line Far End Bit Errors (FEBE) on this phy."
        ::= { cadpStatEntry 8 }

cadpStatPathBIP8Errors OBJECT-TYPE
        SYNTAX    Counter32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
                "The Bit Interleaved Parity 8 is an error checking code
                applied for quick isolation of faults.  Each bit in the
                B octets is set to 1 or 0 as necessary to obtain even
                parity over the previous frame.

                The calculated BIP-8 code for frame N is compared with
                the BIP-8 code extracted from the B3 byte of frame N+1.
                Differences indicate that a Path level bit error has
                occurred.

                Count of Path BIP-8 (Bit Interleaved Parity) errors that
                have been detected on this phy."
        ::= { cadpStatEntry 9 }

cadpStatPathFEBErrors OBJECT-TYPE
        SYNTAX    Counter32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
                "The number of B3 errors in the previous frame inserted
                by the transmitter.  The receiver checks for this in the
                G1 byte of the frame.  A non-zero value (legal range is
                binary 0000 - 1000) indicates a line layer error in
                the remote end.  Any other value is treated as no error.

                Count of Path Far End Bit Errors (FEBE) on this phy."
        ::= { cadpStatEntry 10 }

cadpStatCorrectableHCSErrors OBJECT-TYPE
        SYNTAX    Counter32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
                "The Header Checksum (HCS) is a CRC-8 calculation over
                the first 4 octets of the ATM cell header.  The received
                HCS is verified using the polynomial x^8 + x^2 + x + 1.
                The coset polynomial x^6 + x^4 + x^2 + 1, is added
                (modulo 2) to the received HCS octet before comparison
                with the calculated result.  Cells with single bit error
                in the HCS byte are corrected.  Cells with more than one
                bit error in the HCS byte are uncorrectable.

                Count of incoming cells on this phy with single bit error
                in the Header Checksum (HCS) byte"
        ::= { cadpStatEntry 11 }

cadpStatUncorrectableHCSErrors OBJECT-TYPE
        SYNTAX    Counter32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
                "The Header Checksum (HCS) is a CRC-8 calculation over
                the first 4 octets of the ATM cell header. The received
                HCS is verified using the polynomial x^8 + x^2 + x + 1.
                The coset polynomial x^6 + x^4 + x^2 + 1, is added
                (modulo 2) to the received HCS octet before comparison
                with the calculated result.  Cells with single bit error
                in the HCS byte are corrected.  Cells with more than one
                bit error in the HCS byte are uncorrectable.

                Count of uncorrectable Header Checksum (HCS) errors on
                this phy."
        ::= { cadpStatEntry 12 }


-- end of cadpStatTable

cadpStatOperActivePhy OBJECT-TYPE
        SYNTAX     InterfaceIndexOrZero
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "Returns the ifIndex of the phy which is currently the
                active phy.  A value of 0 indicates that no phy is
                currently active."
        ::= { cadpStatistics 2 }

cadpStatAdminActivePhy OBJECT-TYPE
        SYNTAX     InterfaceIndex
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "Returns the ifIndex of the phy which is the preferred
                active phy.  A value of 0 indicates that no phy is
                currently active.

                Setting this object to a value different from its current
                value causes the ATM module to make the indicated phy active,
                and the active phy inactive.

                Setting this object to its current value has no effect.

                After performing the phy change, the agent will update
                all phy information (including cadpStatOperActivePhy)
                and send a ciscoAtmDualPhyChange trap."
        ::= { cadpStatistics 3 }


ciscoAtmDualPhyMIBTrapPrefix OBJECT IDENTIFIER ::= { ciscoAtmDualPhyMIB 2 }
ciscoAtmDualPhyMIBTraps OBJECT IDENTIFIER ::= { ciscoAtmDualPhyMIBTrapPrefix 0 }

ciscoAtmDualPhyChange NOTIFICATION-TYPE
        OBJECTS    {    cadpStatOperActivePhy -- the new active phy, or 0
                   }
        STATUS     current
        DESCRIPTION
                "A ciscoAtmDualPhyChange trap is sent when the active phy
                changes either because of a failure or because of user
                intervention (setting cadpStatAdminActivePhy, for example)."
        ::= { ciscoAtmDualPhyMIBTraps 1 }


-- conformance information

ciscoAtmDualPhyMIBConformance   OBJECT IDENTIFIER ::= { ciscoAtmDualPhyMIB 3 }
ciscoAtmDualPhyMIBCompliances   OBJECT IDENTIFIER ::= { ciscoAtmDualPhyMIBConformance 1 }
ciscoAtmDualPhyMIBGroups        OBJECT IDENTIFIER ::= { ciscoAtmDualPhyMIBConformance 2 }


-- compliance statements

ciscoAtmDualPhyMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the Cisco Atm Dual Phy MIB.  This MIB is mandatory for
                all Cisco ATM products with multiple phy."
        MODULE  -- this module
                MANDATORY-GROUPS { ciscoAtmDualPhyMIBGroup }
        ::= { ciscoAtmDualPhyMIBCompliances 1 }

-- units of conformance

ciscoAtmDualPhyMIBGroup OBJECT-GROUP
        OBJECTS {
                cadpStatLossOfSignal,
                cadpStatFarEndReceiveFailure,
                cadpStatActive,
                cadpStatSectionBIP8Errors,
                cadpStatLineBIP824Errors,
                cadpStatLineFEBErrors,
                cadpStatPathBIP8Errors,
                cadpStatPathFEBErrors,
                cadpStatCorrectableHCSErrors,
                cadpStatUncorrectableHCSErrors,
                cadpStatAdminActivePhy,
                cadpStatOperActivePhy
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing ATM dual phy monitoring."
        ::= { ciscoAtmDualPhyMIBGroups 1 }
        
END